angular.module('myApp',[],['$provide',function ($provide) {
    // $provide.factory
    // $provide.service
    // $provide.constant
//    $provide.value
}])
    .config(function (APIKEY) {
        console.log(APIKEY)
        //value不能被注入，会报错
        // console.log(version)
        console.log('config')
    })
    //    快捷方法module.constant
//        在config之后controller等其他服务之前执行
//    有时候需要做开发平台的登录，可以将开发平台的地址固定的写在constant里面，或者写在value里面
//    可以注入任何方法
    .run(function () {
        // 比如加载远程的模板，需要在使用前放入缓存，
        // 或者在使用操作前判断用户是否登录，未登录可以先去登录页面
    //    通过远程ajax去加载一个模板，加载后以后，可能在controller里面要用。
        // 在controller执行之前先加载，然后把它放到angularjs的缓存里面，然后在controller里面再去调
        console.log('run')
    })
.constant('APIKEY','xxx')
//只能注入实例方法中，如service、factory、controller、filter、directive等
.value('version','1.0.0')

//    可以将constant、value注入到service、factory、controller、filter、directive等中
.controller('firstController',['APIKEY','version',function (APIKEY,version) {
    console.log(APIKEY)
    console.log(version)
    console.log('controller')
}])